<template>
    <div id="app">
        <GoodsInput @search="handleSearch" @add="handleAdd" :oldGoodsList="oldGoodsList"/>
        <GoodsTable :target='target' :goodsList='goodsList' @del="handleDel"/>
    </div>
</template>
<script>
// 需求
// 1.根据数据动态的把表格渲染出来
// 2.在输入框中输入产品信息，可以动态的添加到表格中并且进行展示
// 3.点击表格中的删除按钮可以把当前的产品信息进行删除
// 4.点击数量中的+号 -号按钮，数量需要变更
// 5.点击全选的时候，表格中的商品全部需要被选中，取消全选，表格中的数据取消选择
// 6.点击勾选表格中的数据，当数据全部勾选上之后，全选也要被选中
// 7.勾选商品的时候，要进行总价格的计算
// 8.数据的永久存储 (自己完成)
// 9.简单实现搜索
    import GoodsInput from './goodsInput.vue'
    import GoodsTable from './goodsTable.vue'
    export default {
        data(){
            return {
                goodsList:[
                    {
                        id:1,    
                        title:'摩托车',
                        quantity:10,
                        imgs: "https://img14.360buyimg.com/pop/jfs/t1/115852/11/25172/150118/6262c10dE8889178a/afc398a681f799bd.jpg",
                        price:20000,
                        code:1,   
                        count:1
                    },
                    {
                        id:2,
                        title:'基你太美',
                        quantity:100,
                        imgs: "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic4.zhimg.com%2F50%2Fv2-fe127aac97845744e7b2124ffe16df6d_hd.jpg&refer=http%3A%2F%2Fpic4.zhimg.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1660310314&t=1186072986d0948928ee0e56610afcc7",
                        price:50,
                        code:2,
                        count:1
                    },
                ],
                target:{},
                oldGoodsList:[],
            };
        },
        created(){
            this.oldgoodsList = [
                // 将goodsList中的选项，拷贝了一份给oldgoodsList
                ...this.oldGoodsList = [...this.goodsList]
            ]
        },
        components:{
            GoodsInput,
            GoodsTable
        },
        methods:{
            handleAdd(input){
                // console.log(input);
                // 将子组件传递的数据push到goodsList中
                this.goodsList.push(input);
            },
            handleDel(input){
                // 删除goodsList的时候，获取当前被删除商品的id，然后到checkArr这个数组中，找到id对应的数据，将这个数据从checkArr中删除掉
                let target = this.goodsList.splice(input,1);
                // 使用vue.$set将这个target变成响应式数据
                // 在组件中使用$set的时候，选项中data的属性需要预先声明
                this.$set(this,'target',target[0]);
            },
            // 处理搜索
            handleSearch(input){
                this.goodsList = input;
            }
        }
    };
</script>

<style>
    #divtop,#divcenter{
        box-sizing: border-box;
        width: 600px;
        border: 1px solid black;
        background-color: skyblue;
        padding: 5px;
        margin-bottom: 10px;
    }
    #tabottom {
        /* 边框合并属性 */
        border-collapse: collapse;    
        width: 600px;
    }
    #tabottom th{
        padding: 5px;
        background-color: #0094ff;
        border: 1px solid black;
        color: white
    }
    #tabottom td{
        padding: 5px;
        border: 1px solid black;
        text-align: center;
    }
    .divbox{
        box-sizing: border-box;
        padding: 5px 0;
        text-align: center;
        width: 600px;
        border: 1px solid black;
    }
</style>